package com.mhkj.execute.feedback.entity;

import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

import com.mhkj.base.fruitType.entity.FruitType;
import com.mhkj.revise.plan.entity.PlanNode;
import com.mics.core.system.base.entity.BaseDomain;
import com.mics.core.system.base.entity.FileEntity;

/**
 * 计划汇报
 * 
 */
@Entity
@Table(name = "t_plan_feed_back")
public class PlanFeedBack extends BaseDomain {

	/**
	 * 编号
	 */

	private static final long serialVersionUID = 6858869024376807674L;

	/**
	 * 是否已经完成(未完成:0,完成:1)
	 */
	@Column(name = "is_complete")
	private int isComplete = 0;

	/**
	 * 创建人姓名
	 */
	@Transient
	private String createName;
	
	/**
	 * 当前进度
	 */
	@Column(name = "current_progress")
	private int currentProgress = 0;

	/**
	 * 实际开始日期
	 */
	@Column(name = "actual_start_date")
	@Temporal(TemporalType.DATE)
	private Date actualStartDate;

	/**
	 * 实际结束日期
	 */
	@Column(name = "actual_end_date")
	private Date actualEndDate;
	

	/**
	 * 逾期时间
	 */
	@Column(name = "overdue_days")
	private int overdueDays;

	/**
	 * 实际工期
	 */
	@Column(name = "actual_time_project")
	private int actualTimeProject;

	/**
	 * 完成说明
	 */
	@Column(name = "complete_ins")
	private String completeIns;

	/**
	 * 预计完成时间
	 */
	@Column(name = "expect_date")
	private Date expectDate;

	/**
	 * 实际完成时间
	 */
	@Column(name = "over_date")
	private Date overDate;
	
	
	/**
	 * 文件地址(多条以逗号','隔开)
	 */
	@Transient
	private String fileUrl;

	/**
	 * 文件名称(多条以逗号','隔开)
	 */
	@Transient
	private String fileName;

	/**
	 * 工期
	 */
	@Column(name = "time_project")
	private Integer timeProject;

	/**
	 * 附件集合
	 */
	@Transient
	private List<FileEntity> listFile;

	/**
	 * 计划节点
	 */
	@ManyToOne
	@JoinColumn(name = "plan_node_id")
	private PlanNode planNode;

	/**
	 * 状态(待确认:0,已确认:1)
	 */
	@Column(name = "status")
	private Integer status=0;

	/**
	 * 任务类型
	 */
	@Column(name = "task_type")
	private String taskType;
	
	/**
	 * 成果类型
	 */
	@ManyToOne
	@JoinColumn(name = "fruit_id")
	private FruitType fruitType;

	public String getCreateName() {
		return createName;
	}

	public void setCreateName(String createName) {
		this.createName = createName;
	}

	public int getIsComplete() {
		return isComplete;
	}

	public void setIsComplete(int isComplete) {
		this.isComplete = isComplete;
	}

	public int getCurrentProgress() {
		return currentProgress;
	}

	public void setCurrentProgress(int currentProgress) {
		this.currentProgress = currentProgress;
	}

	public Date getActualStartDate() {
		return actualStartDate;
	}

	public void setActualStartDate(Date actualStartDate) {
		this.actualStartDate = actualStartDate;
	}

	public Date getActualEndDate() {
		return actualEndDate;
	}

	public void setActualEndDate(Date actualEndDate) {
		this.actualEndDate = actualEndDate;
	}

	public String getCompleteIns() {
		return completeIns;
	}

	public void setCompleteIns(String completeIns) {
		this.completeIns = completeIns;
	}

	public Date getExpectDate() {
		return expectDate;
	}

	public void setExpectDate(Date expectDate) {
		this.expectDate = expectDate;
	}

	public String getFileUrl() {
		return fileUrl;
	}

	public void setFileUrl(String fileUrl) {
		this.fileUrl = fileUrl;
	}

	public String getFileName() {
		return fileName;
	}

	public void setFileName(String fileName) {
		this.fileName = fileName;
	}

	public Integer getTimeProject() {
		return timeProject;
	}

	public void setTimeProject(Integer timeProject) {
		this.timeProject = timeProject;
	}

	public List<FileEntity> getListFile() {
		return listFile;
	}

	public void setListFile(List<FileEntity> listFile) {
		this.listFile = listFile;
	}

	public PlanNode getPlanNode() {
		return planNode;
	}

	public void setPlanNode(PlanNode planNode) {
		this.planNode = planNode;
	}

	public Integer getStatus() {
		return status;
	}

	public void setStatus(Integer status) {
		this.status = status;
	}

	public String getTaskType() {
		return taskType;
	}

	public void setTaskType(String taskType) {
		this.taskType = taskType;
	}

	public FruitType getFruitType() {
		return fruitType;
	}

	public void setFruitType(FruitType fruitType) {
		this.fruitType = fruitType;
	}

	public int getOverdueDays() {
		return overdueDays;
	}

	public void setOverdueDays(int overdueDays) {
		this.overdueDays = overdueDays;
	}

	public int getActualTimeProject() {
		return actualTimeProject;
	}

	public void setActualTimeProject(int actualTimeProject) {
		this.actualTimeProject = actualTimeProject;
	}

	public Date getOverDate() {
		return overDate;
	}

	public void setOverDate(Date overDate) {
		this.overDate = overDate;
	}

}
